def f(i): A0 = [1.1819055680010597, 1.431565918540171, 1.0642546737906344] A1 = [1.7027727811689999, 1.5993649864648791, 1.025135482175168, 1.0916806072811036] A = A0 if i < 26 else A1 for x in A: i /= x i *= x return i def is_aho(i): return i % 3 == 0 or "3" in str(i) N = 40 for i in range(1, N + 1): assert (f(i) != i) == is_aho(i) print(f(i)) いきます。 1.0 2.0 2.9999999999999996 4.0 5.0 5.9999999999